---
title: PPD award calculation
summary: Calculates scheduled and unscheduled PPD degree-award amounts with an auditable calculation trail.
status: draft
owner: SAIF Documentation Generator
last_reviewed: 2026-08-21
library: SAIF.Business.Claim
reference_type: embedded
operation_id: ppd-award-calc
trigger: Caller invokes GetAwardAmount(...) on a scheduled or unscheduled degree-award object
---

# PPD award calculation

Calculates permanent partial disability (PPD) degree-award amounts for both scheduled and unscheduled body-part injuries, producing an auditable step-by-step calculation trail for the unscheduled case.

| Field | Value |
| --- | --- |
| **Operation ID** | ppd-award-calc |
| **Trigger** | Caller invokes `clsPPDScheduledDegreeAwards.GetAwardAmount(effectiveDate)` or `clsPPDUnscheduledDegreeAwards.GetAwardAmount(degrees, effectiveDate)` |
| **Inputs** | Degrees (unscheduled only), effective date |
| **Outputs** | Calculated award amount; `CalcProof` audit trail (unscheduled only) |
| **Primary components** | `clsPPDScheduledDegreeAwards.GetAwardAmount`, `clsPPDUnscheduledDegreeAwards.GetAwardAmount` |
| **Entry point** | SAIF.Business.Claim/clsPPDUnscheduledDegreeAwards.vb |

## Steps

1. `clsPPDScheduledDegreeAwards.GetAwardAmount(effectiveDate)`:
   - Retrieve the scheduled degree-award table ([SQL-027](../sql/SQL-027.md), [CL_PPD_SCHED_DEGREE_AWARD](../database-tables.md#cl_ppd_sched_degree_award)).
   - Return the latest effective-dated flat award amount.
2. `clsPPDUnscheduledDegreeAwards.GetAwardAmount(degrees, effectiveDate)`:
   - Retrieve the unscheduled degree-award bands ([SQL-028](../sql/SQL-028.md), [CL_PPD_UNSCHED_DEGREE_AWARD](../database-tables.md#cl_ppd_unsched_degree_award)).
   - Select the latest effective-dated degree-award table.
   - Walk the banded degree ranges, accumulating the award amount for each band.
   - Append a `ProofItem` per step to `CalcProof` (CalcStep, DegreesRemaining, RangeHigh, RangeAmount, DegreesInRange, AmountForDegrees, TotalSoFar) to produce an auditable calculation trail.
   - Return the accumulated total award amount.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([GetAwardAmount called]) --> Retrieve[Retrieve degree-award table]
	Retrieve --> Latest["Select latest<br>effective-dated table"]
	Latest --> Scheduled{Scheduled or unscheduled?}
	Scheduled -->|Scheduled| Flat([Return flat award amount])
	Scheduled -->|Unscheduled| Walk[Walk banded degree ranges]
	Walk --> Accumulate[Accumulate amount per band<br>append ProofItem to CalcProof]
	Accumulate --> Total(["Return total award amount +<br>CalcProof"])
```

## Failure and edge-case behavior
- No business rules are enforced on the calculation inputs in this library; the calculation reads reference tables and performs arithmetic.
- The auditable `CalcProof` trail is produced only by the unscheduled degree-award calculation, not the scheduled flat-amount calculation.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

## Sources
- SAIF.Business.Claim/clsPPDScheduledDegreeAwards.vb
- SAIF.Business.Claim/clsPPDUnscheduledDegreeAwards.vb
